1
Il contratto ISA e lo stato architetturale
AI031Lesson 3
00:00

Il Architettura dell'insieme di istruzioni (ISA) funge da livello fondamentale di astrazione livello di astrazione e un contratto formale tra software e hardware. Mentre linguaggi ad alto livello come C nascondono la complessità, l'ISA espone lo stato architetturale—la configurazione precisa dei registri del processore e della memoria.

1. Lo stato architetturale

Un processore x86-64 definisce il suo stato attraverso diversi componenti chiave:

  • Contatore del programma (%rip): Contiene l'indirizzo dell'istruzione successiva.
  • File dei registri interi: 16 registri generali (ad esempio, %rax, %rbx) che memorizzano valori a 64 bit.
  • Codici di condizione: Bandiere (ZF, SF, CF, OF) per il flusso di controllo.
  • Registri vettoriali: Come ad esempio registri YMM (256 bit) per operazioni SIMD.

2. Astrazione della memoria

Il codice macchina vede la memoria come un'ampia matrice indirizzabile per byte. Sebbene l'x86-64 supporti indirizzi virtuali a 64 bit, le implementazioni attuali spesso utilizzano uno spazio di indirizzamento a 48 bit ($2^{48}$ byte). Classifichiamo le dimensioni dei dati come Parola (16 bit), Doppia parola (32 bit) e Quadrupla parola (64 bit).

CPU (Stato)%rip (PC)Registri (%rax..)Codici di condizioneCONTRATTO ISAmovq, ret, leaqMemoria virtuale0xFFFF... (Pila)0x0000... (Codice)

3. Evoluzione e compatibilità

Guidato da La legge di Moore, Intel si è evoluto dall' 8086 al Core i7 Haswell. L'ISA garantisce compatibilità verso il basso, consentendo al codice macchina legacy di essere eseguito su hardware moderni con multi-core e iper-threading.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>